package com.ruoyi.cbs.contract.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 承包商人员资质对象 cbs_personnel_cert
 * 
 * @author ruoyi
 * @date 2025-11-21
 */
public class ContractorPersonnelCert extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 承包商ID */
    @Excel(name = "承包商ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long contractorId;

    /** 承包商人员 */
    @Excel(name = "承包商人员")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long personnelId;

    /** 证书名称 */
    @Excel(name = "证书名称")
    private String certName;

    /** 证书类型（执业/职称/安全员等） */
    @Excel(name = "证书类型", readConverterExp = "执=业/职称/安全员等")
    private String certType;

    /** 证书编号 */
    @Excel(name = "证书编号")
    private String certNumber;

    /** 发证机构 */
    @Excel(name = "发证机构")
    private String issueAuthority;

    /** 颁发日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "颁发日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date issueDate;

    /** 过期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "过期日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireDate;

    /** 文件ID */
    @Excel(name = "文件ID")
    private String fileId;

    /** 文件地址 */
    @Excel(name = "文件地址")
    private String fileUrl;

    /** 文件名称 */
    @Excel(name = "文件名称")
    private String fileName;

    /** 证书是否有效: 0无效，1有效 */
    @Excel(name = "证书是否有效: 0无效，1有效")
    private String status;

    /** 删除标志（0代表存在 1代表删除） */
    private String delFlag;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setContractorId(Long contractorId) 
    {
        this.contractorId = contractorId;
    }

    public Long getContractorId() 
    {
        return contractorId;
    }

    public void setPersonnelId(Long personnelId) 
    {
        this.personnelId = personnelId;
    }

    public Long getPersonnelId() 
    {
        return personnelId;
    }

    public void setCertName(String certName) 
    {
        this.certName = certName;
    }

    public String getCertName() 
    {
        return certName;
    }

    public void setCertType(String certType) 
    {
        this.certType = certType;
    }

    public String getCertType() 
    {
        return certType;
    }

    public void setCertNumber(String certNumber) 
    {
        this.certNumber = certNumber;
    }

    public String getCertNumber() 
    {
        return certNumber;
    }

    public void setIssueAuthority(String issueAuthority) 
    {
        this.issueAuthority = issueAuthority;
    }

    public String getIssueAuthority() 
    {
        return issueAuthority;
    }

    public void setIssueDate(Date issueDate) 
    {
        this.issueDate = issueDate;
    }

    public Date getIssueDate() 
    {
        return issueDate;
    }

    public void setExpireDate(Date expireDate) 
    {
        this.expireDate = expireDate;
    }

    public Date getExpireDate() 
    {
        return expireDate;
    }

    public void setFileId(String fileId) 
    {
        this.fileId = fileId;
    }

    public String getFileId() 
    {
        return fileId;
    }

    public void setFileUrl(String fileUrl) 
    {
        this.fileUrl = fileUrl;
    }

    public String getFileUrl() 
    {
        return fileUrl;
    }

    public void setFileName(String fileName) 
    {
        this.fileName = fileName;
    }

    public String getFileName() 
    {
        return fileName;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractorId", getContractorId())
            .append("personnelId", getPersonnelId())
            .append("certName", getCertName())
            .append("certType", getCertType())
            .append("certNumber", getCertNumber())
            .append("issueAuthority", getIssueAuthority())
            .append("issueDate", getIssueDate())
            .append("expireDate", getExpireDate())
            .append("fileId", getFileId())
            .append("fileUrl", getFileUrl())
            .append("fileName", getFileName())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
